package cs.rsa.ts14.juliet;

import org.junit.*;

import cs.rsa.ts14.doubles.LineSequenceStateStub;
import cs.rsa.ts14.doubles.LineTypeClassifierStrategyStub;
import cs.rsa.ts14.framework.TimesagLineProcessor;
import cs.rsa.ts14.lima.TransportOverviewReportBuilder;
import cs.rsa.ts14.standard.StandardTimesagLineProcessor;
import static org.junit.Assert.*;


public class IntegrationTestBottomUpDriver1 {

	private TransportOverviewReportBuilder builder;
	private TimesagLineProcessor processor;

	@Before
	public void setup() {
		builder = new TransportOverviewReportBuilder();
		processor = new StandardTimesagLineProcessor(new LineTypeClassifierStrategyStub(), 
													 builder,
													 new LineSequenceStateStub());
	}

	@Test
	public void testNormalCallingSequence() {
		processor.beginProcess();
		builder.buildWeekDaySpecification("Mon", "Bi");
		processor.endProcess();
		assertEquals(TransportOverviewReportBuilder.createOutput(0, 1, 0, 0, 0, 0, 0), processor.getReport());
	}
	
	@Test
	public void testBlankReport() {
		processor.beginProcess();
		processor.endProcess();
		assertEquals(TransportOverviewReportBuilder.createOutput(0, 0, 0, 0, 0, 0, 0), processor.getReport());
	}
	
	/*@Test
	public void testUnNormalCallingSequence() {
		processor.beginProcess();
		builder.buildWeekDaySpecification("Mon", "Bi");
		processor.endProcess();
		processor.beginProcess();
		builder.buildWeekDaySpecification("Mon", "Bi");
		processor.endProcess();
		assertEquals(TransportOverviewReportBuilder.createOutput(0, 1, 0, 0, 0, 0, 0), processor.getReport());
	}*/
}
